module Data 
where
import Control.Monad.State
import Engine
data Offset 
	= LastLine 
	| Absolute Int 
	| Current 
	| Prev Int 
	| Next Int 
	| ReNext String 
	| LastReNext
	| RePrev String
	| LastRePrev
	| MarkedAs Char deriving Show
data Range = Range Offset Offset deriving Show
data OffsetOrRange = ORO Offset | ORR Range  | ORN deriving Show
data Command
	= Append 
	| Insert 
	| Change 
	| Delete 
	| Print 
	| SmallG String 
	| BigG String
	| NoCommand
	deriving Show
data CompleteCommand = CC Command OffsetOrRange deriving Show

data Stato w = Stato {file::w, lastre :: String } deriving Show

type Editor w = StateT (Stato w) IO





